Pourquoi une fonction spécifique ?

Afin de réaliser les cartes, nous avons besoin de pouvoir discrétiser nos données. Aucunes fonctions disponibles dans les packages que nous connaissons ne permet de réaliser ce que nous avions besoins :

  • pouvoir discréditer une variable numérique soit manuellement avec des bornes, soit automatiquement à partir d’une méthode

  • obtenir un libellé des modalités clair et prêt à l’utilisation.

Nous avons donc construit, dans le package mapfactory une fonction discretiser() qui se base sur cartography::getBreaks() et santoku::chop().

Discretisation

Pour discrétiser la variable, nous pouvons lui donner des bornes manuelles.

## Error in get(paste0(generic, ".", class), envir = get_method_env()) : 
##   object 'type_sum.accel' not found
set.seed(123)
num <- rnorm(1000, sd = 10)
d <- discretiser(v = num, bornes = c(-10, -2, 0, 2, 10), decimales = 1)
levels(d)
## [1] "Inférieur à -10,0" "De -10,0 à -2,0"   "De -2,0 à 0,0"    
## [4] "De 0,0 à 2,0"      "De 2,0 à 10,0"     "Supérieur à 10,0"

Il est possible aussi d’indiquer dans les bornes les mins et max du vecteur discrétisé :

d <- discretiser(num, bornes = c(-10, -2, 0, 2, 10), garder_borne_max = TRUE, decimales = 0)
levels(d)
## [1] "De -28 à -10" "De -10 à -2"  "De -2 à 0"    "De 0 à 2"     "De 2 à 10"   
## [6] "De 10 à 32"

Nous pouvons aussi lui donner une méthode de discrétisation

d <- discretiser(num, method = "quantile")
levels(d)
## [1] "Inférieur à -7,9" "De -7,9 à -2,1"   "De -2,1 à 2,4"    "De 2,4 à 8,4"    
## [5] "Supérieur à 8,4"

Enfin, il est possible d’afficher un libellé au format pourcentage ou avec un suffixe

d <- discretiser(num, method = "quantile", pourcent = TRUE)
levels(d)
## [1] "Inférieur à -7,9 %" "De -7,9 % à -2,1 %" "De -2,1 % à 2,4 %" 
## [4] "De 2,4 % à 8,4 %"   "Supérieur à 8,4 %"
e <- discretiser(abs(num*100), method = "quantile", suffixe = " logements", decimales = 0)
levels(e)
## [1] "Inférieur à 227 logements"   "De 227 à 498 logements"     
## [3] "De 498 à 826 logements"      "De 826 à 1 265 logements"   
## [5] "Supérieur à 1 265 logements"

Tous les paramètres de la fonction mapfactory::discretiser(), comme bornes, decimales, pourcent, suffixe, garder_borne_max ou method se propagent aux fonctions de création de carte de {propre.rpls}, c’est à dire qu’ils sont utilisables directement dans les fonctions creer_carte_x_y(..., method = "quantile", suffixe = " logements", decimales = 0).